package com.duguo.dynamicmvc.factory.processor.view;

import java.util.List;
import java.util.Map;

import javassist.CtClass;
import javassist.CtMethod;

import com.duguo.dynamicmvc.factory.ControllerBuilder;
import com.duguo.dynamicmvc.factory.processor.Processor;
import com.duguo.dynamicmvc.view.View;

public interface ViewProcessor extends Processor{

	public void bindView(Object ctrlInstance, String controllerPath, Map<String, Object> staticViewMapping, CtMethod controllerMethodCtMethod, boolean isSingleAction) throws Exception;

	public void bindView(Object parentController, Object ctrlInstance, View view);

	public View getViewByName(String controllerPath, String defaultName, boolean ignoreNotfound);

	public String getControllerName(CtMethod controllerCtMethod) throws Exception;

	public List<String> getInterceptors(CtMethod controllerCtMethod) throws Exception;

	public boolean hasView(CtClass controllerCtClass, String viewName, ControllerBuilder controllerBuilder) throws Exception;

}
